Control System, Controller, and Control Method

ABSTRACT

There is provided a technique for attaining a state in which communication can be made even when the same control program is used in controllers. Each of the controllers includes: a network setting including a corresponding relation between an IP address and an identifier; and a storage device that stores a control program for controlling a drive device. The control program includes a control instruction for controlling the drive device with the identifier being an input. Each of the controller includes: a generation module that generates an IP address to be different from an IP address of another controller on the same network, and that rewrites the IP address in the network setting; and a communication module that communicates with an information processing device on the same network in accordance with the IP address in the network setting.

TECHNICAL FIELD

The present disclosure relates to a technique for automatically settingan IP (Internet Protocol) address to a control device.

BACKGROUND ART

In various production sites, industrial control devices (hereinafter,also referred to as “controllers”) have been introduced, such as PLCs(Programmable Logic Controllers) and robot controllers. Each of suchcontrollers controls various industrial drive devices, thus automating aproduction process.

A plurality of controllers may be connected to the same network. Thesecontrollers are configured to communicate with a high-level informationprocessing device. The high-level information processing device cancommunicate with each controller to collect information on a drivedevice controlled by the controller and information on the controller.For such communication between the information processing device andeach of the controllers, it is necessary to perform network settings(for example, IP addresses) for the controllers.

Exemplary documents about network settings for controllers are JapanesePatent Laying-Open No. 2013-242629 (Patent Literature 1), JapanesePatent Laying-Open No. 2008-152799 (Patent Literature 2), JapanesePatent Laying-Open No. 2017-151934 (Patent Literature 3), and JapanesePatent Laying-Open No. 2002-328706 (Patent Literature 4).

CITATION LIST Patent Literature

PTL 1: Japanese Patent Laying-Open No. 2013-242629

PTL 2: Japanese Patent Laying-Open No. 2008-152799

PTL 3: Japanese Patent Laying-Open No. 2017-151934

PTL 4: Japanese Patent Laying-Open No. 2002-328706

SUMMARY OF INVENTION Technical Problem

In some cases, when scaling up facilities in a production site, there isa need to duplicate a current facility. In this case, a drive devicecontrol program downloaded to a controller is used also in anothercontroller.

In the case where such a control program controls a drive devicedepending on the IP address of the controller, when the control programis duplicated, the IP addresses of the controllers become the same, withthe result that the control program is not operated normally. Moreover,network settings thereof become the same, with the result that ahigh-level information processing device becomes unable to communicatewith each controller. In order to solve these problems, the networksettings and description of the control program need to be changedmanually. However, such a change requires more time and effort as thescale of the facility is larger.

The present disclosure has been made to solve the above-describedproblems, and an object in a certain aspect thereof is to provide atechnique for attaining a state in which communication can be made evenwhen the same control program is used in controllers.

Solution to Problem

In one example of the present disclosure, a control system includes: aplurality of controllers that each control a drive device serving as acontrol target; and an information processing device connected to thesame network as a network to which each of the plurality of controllersis connected. Each of the plurality of controllers includes a storagedevice that stores a network setting and a control program forcontrolling the drive device serving as the control target, the networksetting including a corresponding relation between an IP (InternetProtocol) address of the controller and an identifier serving as analternative to the IP address. The control program includes a controlinstruction for controlling the drive device serving as the controltarget with the identifier indicated in the network setting of thecontroller being an input. Each of the plurality of controllers furtherincludes: a generation module that generates an IP address of thecontroller to be different from an IP address of an other controller andthat rewrites, with the generated IP address, the IP address indicatedin the network setting of the controller; and a communication modulethat communicates with the information processing device in accordancewith the IP address indicated in the network setting of the controller.

According to the present disclosure, even when the same control programis used in the controllers, the control system can attain a state inwhich the information processing device and each controller cancommunicate with each other.

In one example of the present disclosure, the generation modulegenerates the IP address of the controller based on identificationinformation that is able to uniquely identify the controller.

According to the present disclosure, the controller can securelygenerate an IP address that is not the same as the IP address of theother controller.

In one example of the present disclosure, each of the plurality ofcontrollers is connectable to an external storage medium. The externalstorage medium stores a setting value about an IP address. Thegeneration module reads the setting value stored in the external storagemedium, and generates the IP address of the controller in accordancewith the setting value.

According to the present disclosure, the user can change the IP addressof the controller only by rewriting the setting value stored in theexternal storage medium.

In one example of the present disclosure, the generation module makes aninquiry to the other controller about whether or not the generated IPaddress is already used by the other controller, and when there is noother controller that makes a response to the inquiry, the generationmodule rewrites the IP address indicated in the network setting of thecontroller with the generated IP address.

According to the present disclosure, the controller can securelygenerate an IP address that is not the same as the IP address of theother controller.

In one example of the present disclosure, when there is any othercontroller that makes a response to the inquiry, the generation moduleregenerates an IP address different from the IP address generatedpreviously.

According to the present disclosure, the IP address of the controllercan be avoided from being the same as the IP address of the othercontroller.

In one example of the present disclosure, when the other controllermakes an inquiry about whether or not the IP address of the othercontroller is already set in the controller, the generation modulegenerates the IP address of the controller so as not to be the same asthe IP address of the other controller.

According to the present disclosure, the controller can generate aunique IP address more securely than in the case where an IP address isgenerated randomly.

In one example of the present disclosure, the control program stored inthe controller is a duplicate of a control program stored in an othercontroller.

According to the present disclosure, even when the control program inthe other controller is a duplicate of the control program in thecontroller, the control system can attain a state in which theinformation processing device and each controller can communicate witheach other.

In another example of the present disclosure, a controller forcontrolling a drive device includes a storage device that stores anetwork setting and a control program for controlling the drive device,the network setting including a corresponding relation between an IPaddress of the controller and an identifier serving as an alternative tothe IP address. The control program includes a control instruction forcontrolling the drive device with the identifier indicated in thenetwork setting being an input. The controller further includes: ageneration module that generates an IP address of the controller to bedifferent from an IP address of an other controller connected to thesame network as a network to which the controller is connected and thatrewrites, with the generated IP address, the IP address indicated in thenetwork setting; and a communication module that communicates, inaccordance with the IP address indicated in the network setting, with aninformation processing device connected to the same network as thenetwork to which the controller is connected.

According to the present disclosure, even when the same control programis used in the controllers, the control system can attain a state inwhich the information processing device and each controller cancommunicate with each other.

In another example of the present disclosure, a method for controlling acontroller for controlling a drive device includes: obtaining, from astorage device of the controller, a network setting and a controlprogram for controlling the drive device, the network setting includinga corresponding relation between an IP address of the controller and anidentifier serving as an alternative to the IP address. The controlprogram includes a control instruction for controlling the drive devicewith the identifier indicated in the network setting being an input. Themethod further includes: generating an IP address of the controller tobe different from an IP address of an other controller connected to thesame network as a network to which the controller is connected, andrewriting, with the generated IP address, the IP address indicated inthe network setting; and communicating, in accordance with the IPaddress indicated in the network setting, with an information processingdevice connected to the same network as the network to which thecontroller is connected.

According to the present disclosure, even when the same control programis used in the controllers, the control system can attain a state inwhich the information processing device and each controller cancommunicate with each other.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 shows an overview of a control system according to an embodiment.

FIG. 2 shows a system configuration of the control system according tothe embodiment.

FIG. 3 shows a function block having an IP address automatic generationfunction.

FIG. 4 shows a course of process in which each controller generates itsown IP address.

FIG. 5 shows an exemplary control program including the function blockshown in FIG. 3.

FIG. 6 shows an exemplary screen for setting an IP address setting mode.

FIG. 7 shows a function block that depends on the IP address of thecontroller.

FIG. 8 is a sequence diagram showing a flow of an IP address collectionfunction in accordance with a notification method.

FIG. 9 shows an exemplary IP address management table.

FIG. 10 is a sequence diagram showing a flow of an IP address collectionfunction in accordance with a polling method.

FIG. 11 shows a modification of the function block shown in FIG. 3.

FIG. 12 shows a modification of the management table shown in FIG. 9.

FIG. 13 is a block diagram showing an exemplary hardware configurationof the controller according to the embodiment.

FIG. 14 is a schematic view showing a hardware configuration of aninformation processing device according to the embodiment.

DESCRIPTION OF EMBODIMENTS

The following describes embodiments of the present invention withreference to figures. In the description below, the same referencecharacters are given to the same parts and components. Their names andfunctions are also the same. Hence, they are not described in detailrepeatedly.

A. Implementation

An implementation of the present invention will be described withreference to FIG. 1. FIG. 1 shows an overview of a control system 1.

Control system 1 is an FA (Factory Automation) system for controlling acontrol target such as a facility or a device to automate a productionprocess. Control system 1 includes a plurality of controllers, one ormore information processing devices 200, and a plurality of drivedevices. As an example of the plurality of controllers, two controllers100A, 100B are shown in FIG. 1. Moreover, as an example of the pluralityof drive devices, two drive devices 300 are shown.

Each of controllers 100A, 100B includes a storage device 105, ageneration module 152, and a communication module 154. In thedescription below, the plurality of controllers (for example,controllers 100A, 100B) will be also collectively referred to as“controllers 100”.

Each of controllers 100 is connectable to a plurality of networks. Inthe example of FIG. 1, controller 100 is connected to a network N1 and anetwork N2.

For network N1, EtherNET (registered trademark) is employed, forexample. However, network N1 is not limited to EtherNET, and anycommunication means can be employed. In the example of FIG. 1,information processing device 200 is connected to network N1. Examplesof information processing device 200 include a PC (Personal Computer), atablet terminal, a smartphone, an indicator (for example, HMI (HumanMachine Interface)), and the like.

Network N2 is a lower-level network than network N1. For network N2,EtherNet/IP (registered trademark) or the like is employed, for example.In the example of FIG. 1, drive device 300 is connected to network N2.Drive device 300 includes various industrial devices for automating aproduction process. As an example, drive device 300 includes: an armrobot; a robot controller for controlling the arm robot; an image sensorfor capturing an image of a workpiece conveyed during the productionprocess; other devices used in the production process; and the like.

Storage device 105 stores: a network setting 108 of controller 100; anda control program 110 for controlling drive device 300.

Network setting 108 includes a corresponding relation between an IPaddress of controller 100 and an identifier serving as an alternative tothe IP address. The identifier may be a program variable defined incontrol program 110, may be a system variable managed by controller 100,or may be a physical address indicating a location in which eachvariable is stored.

Control program 110 is a user program implemented for drive device 300by a designer. A development tool for control program 110 is installedin information processing device 200 that is a PC, for example. Thedesigner can design control program 110 suited to a configuration ofdrive device 300 by appropriately combining a plurality of types ofpreviously defined instructions on the development tool. Control program110, which is compiled on the development tool, is installed incontroller 100.

Typically, control program 110 of controller 100A is a duplicate ofcontrol program 110 of controller 100B. Control system 1 according tothe present embodiment provides an environment that allows controller100 to be operated without changing description of the control programor a setting about the IP address even when the control program isduplicated.

More specifically, control program 110 includes a control instructionfor controlling drive device 300 serving as a control target with theidentifier indicated in network setting 108 of controller 100 being aninput. The identifier is the same between controllers 100A, 100B. Asdescribed above, the identifier serves as an alternative to the IPaddress of each of controllers 100A, 100B. The identifier is a fixedvalue that is not tied to the IP address of each of controllers 100A,100B. By interpreting the IP address with such an identifier being aninput, the user does not need to rewrite control program 110 even whenthe IP address is changed.

Generation module 152 generates the IP address of the controller to bedifferent from an IP address of another controller. That is, generationmodule 152 generates the IP address of the controller so as to avoid theIP addresses of controllers 100A, 100B from being the same. Details of amethod for generating an IP address so as not to be the same will bedescribed later. Generation module 152 rewrites, with the generated IPaddress, the IP address indicated in network setting 108 of thecontroller.

Communication module 154 communicates with information processing device200 in accordance with the IP address indicated in network setting 108of the controller. Since the IP address indicated in network setting 108is determined not to be the same as the IP address of the othercontroller, information processing device 200 can communicate withcontrollers 100A, 100B.

As described above, in accordance with the identifier serving as analternative to the IP address, the control instruction depending on theIP address and included in control program 110 controls drive device 300serving as a control target. Hence, even when the IP address is changed,the description of control program 110 does not need to be changed. As aresult, the currently used control program can be also used in the othercontroller.

Moreover, each of controllers 100A, 100B has a function of generating anIP address so as not to be the same as that of the other controller.Hence, even when a larger number of controllers are connected to networkN1, information processing device 200 can continue communication witheach of the controllers. This makes it possible to attain a state inwhich communication can be made even when a control program in a certaincontroller is used in another controller connected to the same network.Accordingly, when duplicating the current facility, the setting aboutthe IP address and the description of the control program do not need tobe changed manually.

Such an advantage is more remarkable as the scale of the facility islarger.

B. Device Configuration of Control System 1

Next, the following describes an entire configuration of control system1 according to the present embodiment. FIG. 2 shows a systemconfiguration of control system 1 according to the present embodiment.

As shown in FIG. 2, control system 1 includes the plurality ofcontrollers 100, one or more information processing devices 200, and theplurality of drive devices 300.

Each of controllers 100 is connectable to a plurality of networks. Inthe example of FIG. 2, controller 100 is connected to high-level networkN1 and low-level network N2.

Information processing device 200 is connected to high-level network N1.Information processing device 200 is a communication device connectableto network N1. As shown in FIG. 2, information processing device 200 isconstituted of at least one of one or more support devices 200A, one ormore server devices 200B, and one or more indicators 200C.

Support device 200A provides a designer with a development environmentfor designing control program 110. Support device 200A is a notebook PC,a desktop PC, a tablet terminal, a smartphone, or the like, for example.The designer can design control program 110 on support device 200A, andcan download control program 110 to controller 100 through network N1.

For server device 200B, a database system, a manufacturing executionsystem (MES), or the like is considered. The manufacturing executionsystem obtains information from a manufacturing apparatus or facilityserving as a control target, and monitors and manages the entireproduction. The manufacturing execution system can handle orderinformation, quality information, shipment information, or the like. Theconfiguration is not limited to these. A device that provides aninformation-related service (a process for obtaining various types ofinformation from a control target and performing a macroscopic ormicroscopic analysis or the like) may be connected to network N1.Moreover, server device 200B collects, from controller 100, data aboutan operation state of controller 100 or drive device 300, and writes thecollected data in a database.

In response to reception of a manipulation from the user, indicator 200Coutputs, to controller 100, a command or the like corresponding to themanipulation of the user. Indicator 200C graphically presents a resultof calculation in controller 100 or the like.

Drive device 300 is connected to low-level network N2. Drive device 300is a collection of devices for performing predetermined operations ontoa workpiece W directly or indirectly. FIG. 2 shows arm robot 325, whichis an exemplary drive device 300. The facility including controller 100Aand arm robot 325 is identical to the facility including controller 100Band arm robot 325.

Controller 100 has a plurality of physical communication ports.Different networks can be connected to respective communication ports.In the example of FIG. 2, controller 100 has two communication ports P1,P2. Network N1 is branched by a hub 150, and is connected tocommunication port P1 of each of controllers 100A, 100B. Network N2 isconnected to communication port P2. For network N2, it is preferable toemploy a field network that performs constant-cycle communication toensure a time of arrival of data. As the field network that performssuch constant-cycle communication, EtherCAT, CompoNet, or the like hasbeen known. In accordance with control program 110 (see FIG. 1),controller 100 generates a control command for arm robot 325 at aconstant cycle, and sends the control command to arm robot 325.

C. IP Address Automatic Generation Function

As described above, each of controllers 100 generates its own IP addressso as not to be the same as the other IP address of the othercontroller. For such an IP address generation function, various methodscan be employed. The following describes specific examples of the IPaddress automatic generation function.

C1. Specific Example 1 of IP Address Automatic Generation Function

First, with reference to FIG. 3, a specific example 1 of the IP addressautomatic generation function will be described. In this specificexample, the IP address automatic generation function is provided as afunction block. Since such a function block is included in controlprogram 110 (see FIG. 1) described above, the user does not need to setan IP address. FIG. 3 shows a function block FB0 having the IP addressautomatic generation function. Function block FB0 is one example ofgeneration module 152 (see FIG. 1) described above.

In the description below, it is assumed that the IP address automaticgeneration function is defined by the function block; however, the IPaddress automatic generation function may be defined by a differentprogramming language. As an example, the IP address automatic generationfunction may be defined by a ladder diagram (LD), or may be defined byone or a combination of an instruction list (IL), a structured text(ST), and a sequential function chart (SFC). Alternatively, the IPaddress automatic generation function may be defined by ageneral-purpose programming language such as JavaScript (registeredtrademark) or C language.

As shown in FIG. 3, function block FB0 includes: input portions 155A,155B each for receiving a setting about the IP address automaticgeneration function; and output portions 157A to 157E each foroutputting a result of execution of the IP address automatic generationfunction.

Input portion 155A, which is shown as “Execute”, receives a setting fordesignating whether to perform the IP address automatic generationfunction. As an example, input portion 155A receives an input “True” or“False”. The IP address automatic generation function is not performedas long as “False” is input into input portion 155A. On the other hand,when “True” is input into input portion 155A, the IP address automaticgeneration function is performed.

Input portion 155B, which is shown as “Method”, receives a setting aboutan IP address automatic generation method. That is, function block FBOswitches between IP address automatic generation function methods inaccordance with a value input into input portion 155B. As an example,input portion 155B receives inputs of “1” to “3”.

When “1” is input into input portion 155B, function block FB0 generatesan IP address based on a predetermined setting value stored in anexternal storage device such as a memory card. Typically, a setting fileis written in the external storage device in advance. A setting valueabout an IP address is defined in the setting file. The setting valuemay be an IP address itself, or may be identification informationspecific to the controller (for example, MAC (Media Access Control), aserial number, or the like). Based on “True” being input into inputportion 155A shown as “Execute”, function block FB0 reads the settingvalue from the setting file stored in the external storage device. Next,function block FB0 generates an IP address of controller 100 based onthe setting value. By providing such an IP address generation method,the user does not need to rewrite existing control program 110.

When “2” is input into input portion 155B, function block FB0 generatesan IP address of the controller based on identification information thatis able to uniquely identify the controller. The identificationinformation is the MAC (Media Access Control) address of controller 100,for example. Since the IP address of the controller is generated basedon such identification information, the IP address of the controller canbe determined uniquely.

When “3” is input into input portion 155B, function block FB0 generatesthe IP address of the controller based on identification informationthat is able to uniquely identify the controller. The identificationinformation is the serial number of controller 100, for example. Sincethe IP address of the controller is generated based on suchidentification information, the IP address of the controller can bedetermined uniquely.

When the IP address is generated normally, a signal indicating normaltermination is output from output portion 157A shown as “Done”. Duringthe generation of the IP address, a signal indicating that thegeneration process is being performed is output from output portion 157Bshown as “Busy”. When the IP address is not generated normally, a signalindicating abnormal termination is output from output portion 157C shownas “Error”. In this case, an error ID for identifying details of theerror is also output from output portion 157D shown as “ErrorID”. Whenthe IP address is generated normally, the generated IP address is outputfrom output portion 157C shown as “IPAddress”.

It should be noted that function block FBO may be provided with variousinput portions and output portions in addition to input portions 155A,155B and output portions 157A to 157E.

C2. Specific Example 2 of IP Address Automatic Generation Function

Next, with reference to FIG. 4, a specific example 2 of the IP addressautomatic generation function will be described. In this specificexample, the IP address automatic generation function is not provided asa function block, but is provided as a basic function of controller 100.The basic function is one example of generation module 152 (see FIG. 1)described above.

FIG. 4 shows a course of process in which each controller generates itsown IP address. Three controllers 100A to 100C are shown in FIG. 4.Controllers 100A to 100C are connected to the same network NW1 via hub150. It is assumed that as an initial state, no IP address is set ineach of controllers 100A to 100C.

First, it is assumed that generation module 152 of controller 100Agenerates an IP address of controller 100A. In the present stage inwhich no IP addresses of controllers 100A to 100C are set, controller100A generates an IP address of controller 100A based on identificationinformation that is able to uniquely identify controller 100A, forexample. The identification information includes at least one of the MACaddress and the serial number, for example. Since the IP address of thecontroller is generated based on such identification information, the IPaddress of the controller can be generated uniquely. In the example ofFIG. 4, “192.168.250.1” is generated as the IP address of controller100A.

In a step S1, controller 100A broadcasts the generated IP address toother controllers 100B, 100C. The generated IP address is transmitted byway of an ARP (Address Resolution Protocol) packet, for example. ARP isa scheme for obtaining information on a MAC address of Ethernet from anIP address. Occurrence of a response to the ARP packet indicates thatthe IP address included in the ARP packet is already used.

By using this scheme, generation module 152 of controller 100A makes aninquiry to the other controllers about whether or not the generated IPaddress is already used by the other controllers. That is, generationmodule 152 of controller 100A writes the generated IP address in the ARPpacket, and broadcasts the ARP packet to other controllers 100B, 100C.

In a step S2, it is assumed that each of other controllers 100B, 100Creceives, from controller 100A, the inquiry made by way of the ARPpacket. On this occasion, each of controllers 100B, 100C stores the IPaddress included in the ARP packet. Each of controllers 100B, 100Cdetermines whether or not the IP address included in the ARP packetcoincides with the IP address thereof. When it is determined that the IPaddress included in the ARP packet coincides with the IP addressthereof, each of controllers 100B, 100C transmits its own MAC address tocontroller 100A that is the origin of transmission of the inquiry.Otherwise, each of controllers 100B, 100C does not transmit anything tocontroller 100A that is the origin of transmission of the inquiry.

In a step S3, when there is no other controller that makes a response tothe inquiry made by way of the ARP packet, generation module 152 ofcontroller 100B rewrites network setting 108 (see FIG. 1) of controller100B with the generated IP address. Accordingly, controller 100A cansecurely generate a unique IP address.

On the other hand, when there is any other controller that makes aresponse to the inquiry made by way of the ARP packet, generation module152 of controller 100A regenerates an IP address different from the IPaddress generated previously. Accordingly, the IP address of controller100A can be avoided from being the same as those of the othercontrollers. Until no response to the inquiry made by way of the ARPpacket is made, controller 100A repeats regeneration of an IP addressand an inquiry by way of an ARP packet.

Next, generation module 152 of controller 100B generates an IP addressof controller 100B. In the present stage in which the inquiry made byway of an ARP packet is received from other controller 100A, generationmodule 152 of controller 100B generates an IP address of controller 100Bso as not to be the same as the IP address included in the inquiry.Accordingly, controller 100B can generate a unique IP address moresecurely than in the case where an IP address is generated randomly.

As an example, controller 100B adds a predetermined value (forexample, 1) to the IP address, and employs the result of addition as theIP address of controller 100B. In the example of FIG. 4, “192.168.250.2”is generated as the IP address of controller 100B. In a step S4,controller 100B writes the generated IP address in an ARP packet, andbroadcasts the ARP packet to other controllers 100A, 100C.

In a step S5, it is assumed that each of other controllers 100A, 100Creceives, from controller 100B, the inquiry made by way of the ARPpacket. On this occasion, each of controllers 100A, 100C stores the IPaddress included in the ARP packet. Each of controllers 100A, 100Cdetermines whether or not the IP address included in the ARP packetcoincides with the IP address thereof. When it is determined that the IPaddress included in the ARP packet coincides with the IP addressthereof, each of controllers 100A, 100C transmits its own MAC address tocontroller 100B that is the origin of transmission of the inquiry.Otherwise, each of controllers 100A, 100C does not transmit anything tocontroller 100B that is the origin of transmission of the inquiry.

In a step S6, when there is no other controller that makes a response tothe inquiry made by way of the ARP packet, generation module 152 ofcontroller 100B rewrites network setting 108 (see FIG. 1) of controller100B with the generated IP address.

On the other hand, when there is any other controller that makes aresponse to the inquiry made by way of the ARP packet, generation module152 of controller 100B regenerates an IP address different from the IPaddress generated previously. Accordingly, the IP address of controller100B can be avoided from being the same as those of the othercontrollers. Until no response to the inquiry made by way of the

ARP packet is made, controller 100B repeats regeneration of an IPaddress and an inquiry by way of an ARP packet.

Next, generation module 152 of controller 100C generates an IP addressof controller 100C. In the present stage in which the inquiry made byway of an ARP packet is received from each of other controllers 100A,100B, generation module 152 of controller 100C generates an IP addressof controller 100C so as not to be the same as the IP address includedin the inquiry.

As an example, controller 100C adds a predetermined value (forexample, 1) to the IP address, and employs the result of addition as theIP address of controller 100C. In the example of FIG. 4, “192.168.250.3”is generated as the IP address of controller 100C. In a step S7,generation module 152 of controller 100C writes the generated IP addressin an ARP packet, and broadcasts the ARP packet to other controllers100A, 100B.

In a step S8, it is assumed that each of other controllers 100A, 100Breceives, from controller 100C, the inquiry made by way of the ARPpacket. Each of controllers 100A, 100B determines whether or not the IPaddress included in the ARP packet coincides with the IP addressthereof. When it is determined that the IP address included in the ARPpacket coincides with the IP address thereof, each of controllers 100A,100B transmits its own MAC address to controller 100C that is the originof transmission of the inquiry. Otherwise, each of controllers 100A,100B does not transmit anything to controller 100C that is the origin oftransmission of the inquiry.

In a step S9, when there is no other controller that makes a response tothe inquiry made by way of the ARP packet, generation module 152 ofcontroller 100C rewrites network setting 108 (see FIG. 1) of controller100C with the generated IP address.

On the other hand, when there is any other controller that makes aresponse to the inquiry made by way of the ARP packet, generation module152 of controller 100C regenerates an IP address different from the IPaddress generated previously. Accordingly, the IP address of controller100A can be avoided from being the same as those of the othercontrollers. Until no response to the inquiry made by way of the ARPpacket is made, controller 100C repeats regeneration of an IP addressand an inquiry by way of an ARP packet.

As described above, in this specific example, each of controllers 100determines whether or not the generated IP address is used by the othercontrollers based on the result of the inquiry made by way of the ARPpacket. In a stage in which an inquiry made by way of an ARP packet isreceived at least once from another controller, controller 100 generatesan IP address so as not to be the same as the IP address included in theARP packet received from the other controller. Accordingly, the IPaddresses of the controllers are prevented from being the same.

Preferably, an interval of transmission of an ARP packet is shiftedamong the controllers. For example, each controller generates a randomnumber, and determines a timing of transmission of an ARP packet basedon the random number. Thus, by shifting the timings of transmission ofARP packets among the controllers, the ARP packets are prevented frombeing transmitted simultaneously.

D. Exemplary Program

With reference to FIG. 5, an exemplary use of function block FB0described with reference to FIG. 3 will be described. FIG. 5 shows anexemplary control program including function block FB0 shown in FIG. 3.

In the example of FIG. 5, control program 110 is defined by a ladderprogram. Control program 110 includes: a process for generating an IPaddress of controller 100; a process for setting the generated IPaddress to controller 100; and the like. It should be noted that controlprogram 110 shown in FIG. 5 does not represent whole of the processes incontroller 100, but represents part of the processes.

In the example of FIG. 5, control program 110 includes input elementsIN0, IN1, function blocks FB0, FB1, and output elements OUT0, OUT1.

Values of input elements IN0, IN1 are changed in accordance withvariables assigned thereto. More specifically, a variable “AutoSetting”is assigned to input element IN0. The variable “AutoSetting” is of aBOOL type, and has an initial value of “False” (=OFF). Although notshown in FIG. 5, the value of the variable “AutoSetting” is changed to“True” (=ON) based on an IP address automatic setting mode being set toON, for example. The IP address setting mode will be described later(see FIG. 6). When the automatic IP address setting mode is set to OFF,the value of the variable “AutoSetting” becomes “False” (=OFF).

A variable “ChangeTrigger” is assigned to input element IN1. Thevariable “ChangeTrigger” is of the BOOL type and has an initial value of“False” (=OFF). Although not shown in FIG. 5, the value of the variable“ChangeTrigger” is changed to “True” (=ON) based on controller 100 beingactivated, for example. Otherwise, the value of the variable“ChangeTrigger” becomes “False” (=OFF).

A variable “Done0” is assigned to input element IN2. The variable“Done0” is of the BOOL type and has an initial value of “False” (=OFF).Moreover, the variable “Done0” is associated with an output “Done” offunction block FB0. As described above, when the IP address generationprocess is changed normally, a signal “True” (=ON) indicating normaltermination is output from the output “Done” of function block FB0. Whenthe output “Done” of function block FB0 becomes “True” (=ON), the valueof input element IN2 becomes “True” (=ON). On the other hand, when theoutput “Done” of function block FB0 becomes “False” (=OFF), the value ofinput element IN2 becomes “False” (=OFF).

Function block FBO is a program for generating the IP address. Based onthe variable “AutoSetting” becoming “True” (=ON) and the variable“ChangeTrigger” becoming “True” (=ON), a signal “True” (=ON) indicating“enable” is input into the input portion “Execute” of function blockFB0. Based on this, function block FB0 performs the IP addressgeneration process in accordance with a variable “Method0” input intothe input portion “Method”. Details of the IP address generation processhave been described with reference to FIG. 3, and therefore will not bedescribed repeatedly.

Function block FB1 is a program for setting an IP address to controller100. Based on the variable “Done” becoming “True” (=ON), a signal “True”(=ON) indicating “enable” is input into the input portion “Execute” offunction block FB1. Based on this, function block FB1 performs the IPaddress setting process in accordance with a value of a variable“IPAddress0” input into the input portion “IPAddress”. Since thevariable “IPAddress0” is associated with the output “IPAddress” offunction block FBO, the IP address generated by function block FB0 isset by function block FB1. More specifically, function block FB1rewrites, with the value of the variable “IPAddress0”, the IP addressdefined in network setting 108 (see FIG. 1) of controller 100 or the IPaddress managed by the system variable.

When the IP address is set normally, a signal indicating normaltermination is output from the output portion “Done” of function blockFB1. During the setting of the IP address, a signal indicating that thesetting process is being performed is output from the output portion“Busy” of function block FB1. When the IP address is not set normally, asignal indicating abnormal termination is output from the output portion“Error” of function block FB1. In this case, an error ID for identifyingdetails of the error is further output from the output portion “ErrorID”of function block FB1.

The variable “Done1” is assigned to output element OUT1, and isassociated with the output portion “Done” of function block FB1. As aresult, the value of output element OUT1 is changed in accordance withthe value of the output “Done” of function block FB1.

E. IP Address Setting Mode

The IP address setting mode will be described with reference to FIG. 6.FIG. 6 shows an exemplary screen for setting the IP address settingmode.

The IP address setting mode can be set on a setting screen 30 presentedon support device 200A (see FIG. 2) described above, for example.Setting screen 30 includes: radio buttons R1 to R4 that each receive aselection of a setting mode; an OK button 31; and a cancel button 32.The IP address setting mode includes a first setting mode to a fourthsetting mode, for example.

When radio button R1 is selected, the IP address setting mode is set tothe first setting mode. In the first setting mode, the user candesignate: an IP address to be set to controller 100; a subnet mask; andan IP address of a default gateway.

When radio button R2 is selected, the IP address setting mode is set tothe second setting mode. In the second setting mode, controller 100 isset to obtain an IP address from a server in accordance with a BOOTP(BOOTstrapProtocol) protocol. In the second setting mode, whenevercontroller 100 is activated, controller 100 dynamically sets an IPaddress.

When radio button R3 is selected, the IP address setting mode is set tothe third setting mode. In the third setting mode, controller 100 is setto obtain an IP address from a server in accordance with the BOOTPprotocol. In the second setting mode, controller 100 statically sets theIP address.

When radio button R4 is selected, the IP address setting mode is set tothe fourth setting mode. In the fourth setting mode, controller 100automatically generates an IP address and applies the IP address tocontroller 100 itself. The IP address automatic generation function hasbeen described with reference to FIG. 3 and FIG. 4, and therefore willnot be described repeatedly.

When OK button 31 is pressed, support device 200A saves the selectedsetting mode. Based on a setting mode download instruction beingreceived, support device 200A transmits the selected setting mode to adesignated controller 100. Controller 100 sets an IP address inaccordance with the selected setting mode.

When cancel button 32 is pressed, support device 200A closes settingscreen 30 without saving the selected setting mode.

F. Control Instruction Depending on IP Address Setting

As described above, control program 110 (see FIG. 1) includes a controlinstruction depending on the IP address of its corresponding controller.With reference to FIG. 7, the following describes an exemplary controlinstruction depending on the IP address of the controller. FIG. 7 showsa function block FB2 depending on the IP address of the controller.

In the description below, function block FB2 will be illustrativelydescribed as an exemplary control instruction depending on the IPaddress of the controller; however, the control instruction is notlimited to function block FB2. For example, the control instruction caninclude: an instruction defined by the ladder diagram; or an instructiondefined by one or a combination of an instruction list, a structuredtext, and a sequential function chart. Moreover, the control instructioncan include an instruction defined by a general-purpose programminglanguage such as JavaScript or C language.

Function block FB2 is a program for transmitting designated data to adesignated device. Function block FB2 includes: input portions 158A to158D each for receiving a setting about a data transmission function;and output portions 159A to 159D each for outputting a result ofexecution of the data transmission function.

Input portion 158A shown as the “Execute” receives a setting fordesignating whether to perform the data transmission function. As anexample, input portion 158A receives an input of “True” or “False”. Thedata transmission function is not performed as long as “False” is inputinto input portion 158A. On the other hand, when “True” is input intoinput portion 158A, the data transmission function is performed.

Input portion 158B shown as “Soket” receives network information about adestination of transmission and an origin of transmission. As anexample, the network information includes: the IP address of aninformation processing device 200 serving as the destination oftransmission; the IP address of controller 100 serving as the origin oftransmission; and the like. Thus, function block FB2 is dependent on theIP address of controller 100. Control program 110 is designed such thatthe above-described identifier serving as an alternative to the IPaddress (see FIG. 1) is written in the network information to be inputinto input portion 158B and the network information is input into inputportion 158B.

Input portion 158C shown as “SendDat” receives, as an input, target datafor transmission. Input portion 158D shown as “Size” receives, as aninput, a size of the target data for transmission.

When the target data for transmission is transmitted normally, a signalindicating normal termination is output from output portion 159A shownas “Done”. During transmission of the target data for transmission, asignal indicating that the transmission process is being performed isoutput from output portion 159B shown as “Busy”. When the data to betransmitted is not generated normally, a signal indicating abnormaltermination is output from output portion 159C shown as “Error”. In thiscase, an error ID for identifying details of the error is further outputfrom output portion 159D shown as “ErrorID”.

G. IP Address Collection Function

Information processing device 200 (see FIG. 1) collects, from eachlow-level controller, the IP addresses generated by the above-describedautomatic generation function. With this collection function, the usercan readily know the IP address set in each controller.

For an IP address collection method, various collection methods can beemployed. As an example, for the IP address collection method, one of anotification method from controller 100 and a polling method byinformation processing device 200 is employed. With reference to FIG. 8to FIG. 10, the following describes the notification method and thepolling method in this order.

G1. IP Address Collection Function by Notification Method

First, with reference to FIG. 8, the IP address collection function bythe notification method will be described. FIG. 8 is a sequence diagramshowing a flow of the IP address collection function by the notificationmethod.

In the data collection function in this method, each controllertransmits an automatically generated IP address to a high-levelinformation processing device 200 at a timing at which the automaticallygenerated IP address is set.

More specifically, it is assumed that controller 100 is activated instep S10. Alternatively, it is assumed that in step S10, controller 100downloads various types of settings from support device 200A or thelike. The various types of settings include: control program 110designed by support device 200A; the setting mode set on setting screen30 (see FIG. 6) described above; and the like.

In step S12, controller 100 performs the IP address automatic generationprocess. The IP address automatic generation process has been describedwith reference to FIG. 3 and FIG. 4, and therefore will not be describedrepeatedly. Controller 100 sets the generated IP address as the IPaddress of controller 100.

In step S20, controller 100 transmits the IP address generated in stepS12 to information processing device 200. Likewise, the othercontrollers also transmit respective automatically generated IPaddresses to information processing device 200 at respective timings atwhich the automatically generated IP addresses are set.

In a step S22, based on the IP address being received from controller100, information processing device 200 updates an IP address managementtable. FIG. 9 shows an exemplary IP address management table. FIG. 9shows a management table 35 as an exemplary IP address management table.

For example, management table 35 is managed in a below-described storagedevice 210 (see FIG. 14) of information processing device 200. Inmanagement table 35, the identification information, IP address, serialnumber, and model number of the controller are associated with oneanother. The identification information of the controller is representedby information by which the controller can be identified uniquely, suchas the name or ID (Identification) of the controller.

When information about the controller serving as the origin oftransmission of the IP address is not defined in management table 35,information processing device 200 adds, to management table 35, theidentification information of the controller serving as the origin oftransmission, the IP address of the controller serving as the origin oftransmission, the serial number of the controller serving as the originof transmission, and the model number of the controller serving as theorigin of transmission. On the other hand, when the information aboutthe controller of the origin of transmission of the IP address isalready defined in management table 35, the IP address, serial number,and model number associated with the identification information of thecontroller serving as the origin of transmission are updated with thereceived IP address, serial number, and model number.

The user can present management table 35 on the display of informationprocessing device 200 as required. Accordingly, the user can readilyknow the IP address set in each controller. Moreover, since the serialnumber, model number, and the like are presented together, the user canreadily distinguish between the controllers and can readily know what IPaddress is set to which controller.

G2. IP Address Collection Function by Polling Method

Next, with reference to FIG. 10, the IP address collection function bythe polling method will be described. FIG. 10 is a sequence diagramshowing a flow of the IP address collection function by the pollingmethod.

In the data collection function in this method, information processingdevice 200 regularly collects an automatically generated IP address fromeach controller.

More specifically, in a step S50, information processing device 200transmits an IP address transmission instruction to each of controllers100. The transmission instruction is regularly transmitted frominformation processing device 200 to controller 100.

It is assumed that at the time of step S50, the IP address of controller100 is not set. When the IP address is not set, controller 100 makes noresponse to the transmission instruction received from informationprocessing device 200.

It is assumed that controller 100 is activated in a step S54.Alternatively, it is assumed that in step S54, controller 100 downloadsvarious types of settings from support device 200A or the like. Thevarious types of settings include: control program 110 designed bysupport device 200A; the setting mode set on setting screen 30 (see FIG.6) described above; and the like.

In a step S60, information processing device 200 transmits the IPaddress transmission instruction to each of controllers 100. As withstep S50, since the IP address of information processing device 200 isnot set at this time, controller 100 makes no response to thetransmission instruction received in step S60.

In a step S64, controller 100 performs the IP address automaticgeneration process. The IP address automatic generation process has beendescribed with reference to FIG. 3 and FIG. 4, and therefore will not bedescribed repeatedly. Controller 100 sets the generated IP address asthe IP address of controller 100.

In a step S70, information processing device 200 transmits an IP addresstransmission instruction to each of controllers 100. Since the IPaddress of information processing device 200 is set at this time, in astep S72, controller 100 transmits its own IP address to informationprocessing device 200.

In a step S80, based on the IP address being received from controller100, information processing device 200 updates IP address managementtable 35 (see FIG. 9). The method for updating management table 35 hasbeen described with reference to FIG. 9 and therefore will not bedescribed repeatedly.

H. Determined State of IP Address

Preferably, control system 1 is configured to receive an indication ofwhether the IP address of controller 100 is in a provisionallydetermined state or is in an actually determined state. Since such adetermined state can be set, the user can readily know whether the IPaddress of each controller is in a provisionally set state or is in anactually set state.

As an example, when constructing a network environment of control system1, the user brings the IP address of controller 100 into theprovisionally determined state. Such a provisionally determined statecan be employed when control system 1 is temporarily brought into astate in which control system 1 can make communication. Afterconstructing the network environment of control system 1, the useractually sets the IP address of controller 100, thus bringing the IPaddress into the actually determined state.

With reference to FIG. 11, the following describes a method for settinga determined state of the IP address. FIG. 11 shows a modification offunction block FB0 shown in FIG. 3. FIG. 11 shows a function block FB3as the modification of function block FB0.

Function block FB3 shown in FIG. 11 is different from function block FB0shown in FIG. 3 in that function block FB3 shown in FIG. 11 further hasan input portion 155C. The other points are the same as those describedabove, and therefore will not be described repeatedly.

Input portion 155C shown as the “Setting” receives a setting for adetermined state of the IP address. As an example, input portion 155Creceives an input of “0” or “1”.

When “0” is input into input portion 155C, the IP address generated byfunction block FB3 is set as the provisionally determined state. When“1” is input into input portion 155C, the IP address generated byfunction block FB3 is set as the actually determined state.

The determined state of the IP address is switched in accordance withthe IP address automatic generation method, for example. As an example,when the method for generating the IP address from the identificationinformation (for example, MAC address or the like) of controller 100 isset to input portion 155B, “0” indicating the provisionally determinedstate is input into input portion 155C. On the other hand, when themethod for generating the IP address based on a setting value stored inan external storage device such as a memory card is set to input portion155B, “1” indicating the actually determined state is input into inputportion 155C.

FIG. 12 shows a modification of management table 35 shown in FIG. 9. Amanagement table 35A is shown as the modification in FIG. 12.

For example, management table 35A is managed in a below-describedstorage device 210 (see FIG. 14) of information processing device 200.In management table 35A, the identification information, IP address, anddetermined state of the IP address of the controller are associated withone another. The identification information of the controller isrepresented by information by which the controller can be identifieduniquely, such as the name or ID of the controller.

The user can present management table 35A on the display of informationprocessing device 200 as required. Accordingly, the user can readilyknow the determined state of the IP address set in each controller.

I. Hardware Configuration of Controller 100

FIG. 13 is a block diagram showing an exemplary hardware configurationof controller 100. With reference to FIG. 13, controller 100 incudes aprocessor 102, a chip set 104, a storage device 105, a main memory 106,and a USB (Universal Serial Bus) interface 112, a memory card interface114, a network interface 118, an internal bus controller 120, and afield network controller 130.

Processor 102 is constituted of a CPU (Central Processing Unit), an MPU(Micro Processing Unit), a GPU (Graphics Processing Unit), or the like.As processor 102, a configuration having a plurality of cores may beemployed or a plurality of processors 102 may be disposed. Thus,controller 100 has one or more processors 102 and/or a processor 102having one or more cores. Chip set 104 implements a process as a wholeof controller 100 by controlling processor 102 and peripheral elements.Main memory 106 is constituted of a volatile storage device, such as aDRAM (Dynamic Random Access Memory) or a SRAM (Static Random AccessMemory). Storage device 105 is constituted of a nonvolatile storagedevice such as a flash memory, for example.

Processor 102 reads the various types of programs stored in storagedevice 105, expands them in main memory 106, and executes them, therebyimplementing control for a control target. Storage device 105 storesnetwork setting 108 and control program 110 for controller 100. Controlprogram 110 includes not only a system program 111B for implementing abasic process, but also a user program 110A created for a manufacturingapparatus or facility serving as a control target.

USB interface 112 intermediates data communication with an externaldevice (for example, a support device for development of the userprogram or the like) via USB connection.

A memory card 116 is attachable to and detachable from memory cardinterface 114. Memory card interface 114 can write data in memory card116, and can read various types of data (the user program, trace data,and the like) from memory card 116.

Network interface 118 can intermediate data communication via networkN1.

Internal bus controller 120 intermediates data communication with afunction unit attached to controller 100. Field network controller 130intermediates data communication with another unit via network N2.

FIG. 13 shows an exemplary configuration in which required processes areimplemented by processor 102 executing programs; however, part or wholeof the provided processes may be implemented using a dedicated hardwarecircuit (for example, an ASIC (Application Specific Integrated Circuit),an FPGA (Field Programmable Gate Array), or the like).

J. Hardware Configuration of Information Processing Device 200

With reference to FIG. 14, the hardware configuration of informationprocessing device 200 will be described. FIG. 14 is a schematic viewshowing the hardware configuration of information processing device 200.

As an example, information processing device 200 is constituted of acomputer configured in accordance with a general-purpose computerarchitecture. Information processing device 200 includes a controldevice 201, a main memory 202, a communication interface 203, amanipulation interface 205, a display interface 206, an optical drive207, and a storage device 210. These components are communicativelyconnected to one another through internal bus 219.

Control device 201 is constituted of at least one integrated circuit,for example. The integrated circuit is constituted of at least one CPU,at least one ASIC, at least one FPGA, or a combination of those, forexample. Control device 201 expands a program in main memory 202 andexecutes it, thereby implementing various types of processes such as theabove-described IP address collection function. Main memory 202 isconstituted of a volatile memory, and functions as a work memoryrequired to execute a program by control device 201.

Communication interface 203 exchanges data with an external devicethrough a network. Examples of the external device include controller100, a server, other communication devices, and the like. Informationprocessing device 200 may be configured to download an informationprocessing program 213 through communication interface 203. Informationprocessing program 213 is a program for providing an integrateddevelopment environment for control program 110 described above.

Manipulation interface 205 is connected to manipulation unit 222, andreceives a signal indicating a user's manipulation from manipulationunit 222. Typically, manipulation unit 222 is constituted of a keyboard,a mouse, a touch panel, a touchpad, and/or the like, and receives amanipulation from the user.

Display interface 206 is connected to display unit 220, and sends todisplay unit 220 an image signal for presenting an image, in accordancewith a command from control device 201 or the like. Display unit 220 isconstituted of a display, an indicator, or the like, and presentsvarious types of information to the user.

Optical drive 207 reads, from optical disk 207A or the like, varioustypes of programs stored therein, and installs them into storage device210.

FIG. 14 shows an exemplary configuration in which a required program isinstalled into information processing device 200 through optical drive207; however, the configuration is limited to this. The required programmay be downloaded from a server device or the like on a network.Alternatively, the program on information processing device 200 may berewritten by a program written in a storage medium such as a USB(Universal Serial Bus) memory, an SD (Secure Digital) card, or a CF(Compact Flash).

Storage device 210 is a hard disk or an external storage medium, forexample. As an example, storage device 210 stores management tables 35,35A and information processing program 213. It should be noted thatmanagement tables 35, 35A do not necessarily need to be stored instorage device 210, and may be stored in another storage device. As anexample, management tables 35, 35A may be stored in main memory 202 oran external storage medium (for example, a memory card, a server, or thelike).

K. Conclusion

As described above, control program 110 includes a control instructiondepending on an IP address. The control instruction controls a drivedevice 300 serving as a control target with an identifier indicated innetwork setting 108 of controller 100 being an input. The identifierserves as an alternative to the IP address of the controller, and is thesame among the controllers. With such an identifier being an input, theuser does not need to rewrite control program 110 even when the IPaddress is changed. Accordingly, a currently used control program can beused in another controller, thus facilitating scaling-up of a facility.

Moreover, controller 100 generates an IP address of controller 100 to bedifferent from the IP address(es) of the other controller(s).Accordingly, the user can readily construct an environment allowing forcommunication, even when scaling up a facility.

L. Additional Description

As described above, the present embodiment includes the followingdisclosure.

Configuration 1

A control system comprising:

a plurality of controllers (100A, 100B, 100C) that each control a drivedevice (300) serving as a control target; and

an information processing device (200) connected to the same network asa network to which each of the plurality of controllers (100A, 100B,100C) is connected, wherein

each of the plurality of controllers (100A, 100B, 100C) includes astorage device (105) that stores a network setting (108) and a controlprogram (110) for controlling the drive device (300) serving as thecontrol target, the network setting (108) including a correspondingrelation between an IP (Internet Protocol) address of the controller andan identifier serving as an alternative to the IP address,

the control program (110) includes a control instruction for controllingthe drive device (300) serving as the control target with the identifierindicated in the network setting (108) of the controller being an input,

each of the plurality of controllers (100A, 100B, 100C) further includes

-   -   a generation module (152) that generates an IP address of the        controller to be different from an IP address of an other        controller and that rewrites, with the generated IP address, the        IP address indicated in the network setting (108) of the        controller, and    -   a communication module (154) that communicates with the        information processing device (200) in accordance with the IP        address indicated in the network setting (108) of the        controller.

Configuration 2

The control system according to configuration 1, wherein the generationmodule (152) generates the IP address of the controller based onidentification information that is able to uniquely identify thecontroller.

Configuration 3

The control system according to configuration 1 or 2, wherein

each of the plurality of controllers (100A, 100B, 100C) is connectableto an external storage medium,

the external storage medium stores a setting value about an IP address,and

the generation module (152) reads the setting value stored in theexternal storage medium, and generates the IP address of the controllerin accordance with the setting value.

Configuration 4

The control system according to any one of configurations 1 to 3,wherein

the generation module (152) makes an inquiry to the other controllerabout whether or not the generated IP address is already used by theother controller, and

when there is no other controller that makes a response to the inquiry,the generation module (152) rewrites the IP address indicated in thenetwork setting (108) of the controller with the generated IP address.

Configuration 5

The control system according to configuration 4, wherein when there isany other controller that makes a response to the inquiry, thegeneration module (152) regenerates an IP address different from the IPaddress generated previously.

Configuration 6

The control system according to configuration 4 or 5, wherein when theother controller makes an inquiry about whether or not the IP address ofthe other controller is already set in the controller, the generationmodule (152) generates the IP address of the controller so as not to bethe same as the IP address of the other controller.

Configuration 7

The control system according to any one of configurations 1 to 6,wherein the control program (110) stored in the controller is aduplicate of a control program (110) stored in an other controller.

Configuration 8

A controller (100A) for controlling a drive device (300), the controller(100A) comprising:

a storage device (105) that stores a network setting (108) and a controlprogram (110) for controlling the drive device (300), the networksetting (108) including a corresponding relation between an IP addressof the controller (100A) and an identifier serving as an alternative tothe IP address, the control program (110) including a controlinstruction for controlling the drive device (300) with the identifierindicated in the network setting (108) being an input;

a generation module (152) that generates an IP address of the controller(100A) to be different from an IP address of an other controller (100B,100C) connected to the same network as a network to which the controller(100A) is connected and that rewrites, with the generated IP address,the IP address indicated in the network setting (108); and

a communication module (154) that communicates, in accordance with theIP address indicated in the network setting (108), with an informationprocessing device (200) connected to the same network as the network towhich the controller (100A) is connected.

Configuration 9

A method for controlling a controller (100A) for controlling a drivedevice (300), the method comprising:

obtaining, from a storage device of the controller (100A), a networksetting (108) and a control program (110) for controlling the drivedevice (300), the network setting (108) including a correspondingrelation between an IP address of the controller (100A) and anidentifier serving as an alternative to the IP address, the controlprogram (110) including a control instruction for controlling the drivedevice (300) with the identifier indicated in the network setting (108)being an input;

generating an IP address of the controller (100A) to be different froman IP address of an other controller (100B, 100C) connected to the samenetwork as a network to which the controller (100A) is connected, andrewriting, with the generated IP address, the IP address indicated inthe network setting (108); and

communicating, in accordance with the IP address indicated in thenetwork setting (108), with an information processing device (200)connected to the same network as the network to which the controller(100A) is connected.

The embodiments disclosed herein are illustrative and non-restrictive inany respect. The scope of the present invention is defined by the termsof the claims, rather than the embodiments described above, and isintended to include any modifications within the scope and meaningequivalent to the terms of the claims.

REFERENCE SIGNS LIST

1: control system; 30: setting screen; 31: OK button; 32: cancel button;35, 35A:

management table; 100, 100A, 100B, 100C: controller; 102: processor;104: chip set; 105, 210: storage device; 106, 202: main memory; 108:network setting; 110: control program; 110A: user program; 111B: systemprogram; 112: USB interface; 114: memory card interface; 116: memorycard; 118: network interface; 120: internal bus controller; 130: fieldnetwork controller; 150: hub; 152: generation module; 154: communicationmodule; 155A, 155B, 155C, 158A, 158B, 158C, 158D: input portion; 157A,157B, 157C, 157D, 157E, 159A, 159B, 159C, 159D: output portion; 200:information processing device; 200A: support device; 200B: serverdevice; 200C: indicator; 201: control device; 203: communicationinterface; 205: manipulation interface; 206: display interface; 207:optical drive; 207A: optical disk; 213: information processing program;219: internal bus; 220: display unit; 222: manipulation unit; 300: drivedevice; 325: arm robot.

1. A control system comprising: a plurality of controllers that eachcontrol a drive device serving as a control target; and an informationprocessing device connected to the same network as a network to whicheach of the plurality of controllers is connected, wherein each of theplurality of controllers includes a storage device that stores a networksetting and a control program for controlling the drive device servingas the control target, the network setting including a correspondingrelation between an IP (Internet Protocol) address of the controller andan identifier serving as an alternative to the IP address, the controlprogram includes a control instruction for controlling the drive deviceserving as the control target with the identifier indicated in thenetwork setting of the controller being an input, each of the pluralityof controllers further includes a generation module that generates an IPaddress of the controller to be different from an IP address of an othercontroller and that rewrites, with the generated IP address, the IPaddress indicated in the network setting of the controller, and acommunication module that communicates with the information processingdevice in accordance with the IP address indicated in the networksetting of the controller.
 2. The control system according to claim 1,wherein the generation module generates the IP address of the controllerbased on identification information that is able to uniquely identifythe controller.
 3. The control system according to claim 1, wherein eachof the plurality of controllers is connectable to an external storagemedium, the external storage medium stores a setting value about an IPaddress, and the generation module reads the setting value stored in theexternal storage medium, and generates the IP address of the controllerin accordance with the setting value.
 4. The control system according toclaim 1, wherein the generation module makes an inquiry to the othercontroller about whether or not the generated IP address is already usedby the other controller, and when there is no other controller thatmakes a response to the inquiry, the generation module rewrites the IPaddress indicated in the network setting of the controller with thegenerated IP address.
 5. The control system according to claim 4,wherein when there is any other controller that makes a response to theinquiry, the generation module regenerates an IP address different fromthe IP address generated previously.
 6. The control system according toclaim 4, wherein when the other controller makes an inquiry aboutwhether or not the IP address of the other controller is already set inthe controller, the generation module generates the IP address of thecontroller so as not to be the same as the IP address of the othercontroller.
 7. The control system according to claim 1, wherein thecontrol program stored in the controller is a duplicate of a controlprogram stored in an other controller.
 8. A controller for controlling adrive device, the controller comprising: a storage device that stores anetwork setting and a control program for controlling the drive device,the network setting including a corresponding relation between an IPaddress of the controller and an identifier serving as an alternative tothe IP address, the control program including a control instruction forcontrolling the drive device with the identifier indicated in thenetwork setting being an input; a generation module that generates an IPaddress of the controller to be different from an IP address of an othercontroller connected to the same network as a network to which thecontroller is connected and that rewrites, with the generated IPaddress, the IP address indicated in the network setting; and acommunication module that communicates, in accordance with the IPaddress indicated in the network setting, with an information processingdevice connected to the same network as the network to which thecontroller is connected.
 9. A method for controlling a controller forcontrolling a drive device, the method comprising: obtaining, from astorage device of the controller, a network setting and a controlprogram for controlling the drive device, the network setting includinga corresponding relation between an IP address of the controller and anidentifier serving as an alternative to the IP address, the controlprogram including a control instruction for controlling the drive devicewith the identifier indicated in the network setting being an input;generating an IP address of the controller to be different from an IPaddress of an other controller connected to the same network as anetwork to which the controller is connected, and rewriting, with thegenerated IP address, the IP address indicated in the network setting;and communicating, in accordance with the IP address indicated in thenetwork setting, with an information processing device connected to thesame network as the network to which the controller is connected.